草庐IT

TypeScript 模块

全部标签

javascript - 在 Angular2 应用程序中找不到名称模块

我正在使用angular-cli来运行我的typescript驱动的angular2应用程序。我有一个AppComponent定义如下:import{Component}from'@angular/core';import{ServersListComponent}from'./servers-list/servers-list.component';@Component({moduleId:module.id,selector:'app',templateUrl:'app.component.html',styleUrls:['app.component.css'],directiv

javascript - 垃圾收集未使用的模块

我正在使用动态导入来加载用户在浏览器中编写的脚本。我首先将脚本内容放入一个blob中,然后使用动态import()将脚本作为模块加载。随着时间的推移,我预计这些脚本会发生变化并被销毁,从而使相应的模块被垃圾回收。然而,根据Chrome中的内存分析,这并没有发生。原因似乎与称为ModuleMap的东西有关。这是我在不再使用所有脚本后拍摄的内存快照的屏幕截图。如您所见,Window对象提供了通往这些模块的保留路径。只要是这种情况,我肯定最终会耗尽内存,因为每次用户编辑脚本时都会创建这些模块。我想知道是否有办法让Chrome(和其他浏览器)在不再使用这些模块时卸载它们。

JavaScript ES6 模块 + traceur

我正在使用ES6modules使用traceur转译为ES5.转译是通过grunt+grunt-traceur完成的Traceur允许您选择使用哪个模块处理程序:它自己的、AMD、commonJS或内联。我已经尝试了其中的大部分,但似乎都不起作用。为什么?TestClass.jsexportdefaultclassTestClass{constructor(){alert('test');}}Main.jsimportTestClassfrom'./TestClass';vartest=newTestClass();Gruntfile.js(提取)traceur:{options:{e

javascript - ES6 模块拼接

在JavaScriptES6中开发一个web项目,我目前使用Traceur将我的模块从ES6编译到ES5,认为将来当浏览器支持ES6时,我将能够跳过该转换步骤。最后,因为我不想在启动时下载多个js片段,我有一个包含我所有转换为ES5的模块的文件,感谢Traceur。但是为了验证这个选择,我想知道在我将源代码保留在ES6中的那一天这是否仍然可行。如果我简单地连接它们,将会出现无效导入和名称冲突。看起来它不是为它设计的,它需要额外的处理步骤才能正确合并它们。我们应该如何处理定义了多个模块的ES6单文件项目? 最佳答案 这将通过捆绑解决,

javascript - 如何使用 ES6 模块语法(解构)导入属性?

importutilityRemovefrom'lodash/array/remove';importutilityAssignfrom'lodash/object/assign';importutilityRandomfrom'lodash/number/random';importutilityFindfrom'lodash/collection/find';importutilityWherefrom'lodash/collection/where';letutil;util={};util.remove=utilityRemove;util.assign=utilityAssi

javascript - 包含 TypeScript 的解决方案使用 VS2013 不断加载

我在VisualStudio2013上,当我打开任何包含TypeScript的解决方案时,充实或准系统,我得到这个:(出于保密原因删除姓名)很快就会导致这个(可能是众所周知的)消息:最终我只能通过杀死特定进程来关闭session。我已经申请了VS2015,但这需要一个审批流程,这需要一段时间。与此同时,我更愿意让VS2013工作,特别是因为VS2015不保证修复它(它应该,但我不知道)。 最佳答案 IwouldprefertogetVS2013working,especiallysinceVS2015isn'tguaranteedt

javascript - 在 ES6 之前的 Typescript 中实现 Iterator<T> 的推荐方法

这个问题在这里已经有了答案:typescript:makeclassobjectsiterable(3个答案)关闭5年前。我有一个项目,其中包含许多理想情况下会实现Iterable的类和/或Iterator接口(interface)。但是我似乎找不到这些接口(interface)的标准TypeScript定义(例如在typescript-collections或一些类似的包中)。我知道这些在ECMAScript6中通过Symbol.iterator有所标准化。机制,但我的目标是ECMAScript5,并且在可预见的future将保持不变。我能否以某种方式获得这些接口(interface

javascript - 如何在 Webpack 中禁用重命名函数名称? typescript ,Javascript

如何在Webpack中禁止重命名函数名?我的代码中有这个类名:import{MenuBlocksMenuPage}from"../pages/menu/blocks/menupage";但在编译后的文件中,该行变成了不可读的字符串。/*harmonyimport*/var__WEBPACK_IMPORTED_MODULE_73__pages_menu_blocks_menupage__=__webpack_require__(669);我的问题是:Webpack中有什么选项可以禁止更改类或函数名称? 最佳答案 我遇到了同样的问题,A

javascript - 重新导出模块对 tree-shaking 有害吗?

我和我的同事发生了争执,我们似乎无法从任何官方来源(MDN、webpack文档等)找到答案。我的研究hasn'tyieldedmuch任何一个。好像有疑问evenwhenitcomestoimporting我们的设置是Webpack、Babel和典型的React/Redux应用程序。举个例子:export*from'./actions';export*from'./selectors';export*from'./reducer';export{default}from'./reducer';这允许我将Redux模块分成逻辑部分,使代码更易于阅读和维护。然而,我的一些同事认为expor

javascript - webpack根据chunk加载不同的模块

是否可以让webpack根据一些上下文信息加载另一个模块?例如,我有两个版本的React应用程序:桌面版和移动版在我的index.js中,我决定加载哪个应用程序:if(isMobile()){loadMobile().then(({default:App})=>render(App))}现在我想重用一些模块,但有些我想覆盖它。所以默认情况下它应该加载index.js,但是如果上下文isMobile并且在index.js旁边存在mobile.js文件,它应该加载mobile变体。components/Button/index.jsmobile.js在移动上下文中,webpack应该加载m